package main

import "fmt"

func funcA() {
	fmt.Println("a")
}
func funcB() {
	// defer一定要在可能引发panic的语句之前定义
	fmt.Println("b")
	defer func() {
		// recover()必须搭配defer使用
		err := recover()              // 3、recover()收集程序错误,并修复,可以继续执行
		// err 是错误信息,就是panic的错误信息
		fmt.Println(err)              // 出现严重错误
		fmt.Println("panic之前执行defer") // 2、
	}()
	panic("出现严重错误") // 1、出现错误程序退出
}
func funcC() {
	fmt.Println("c")
}
func main() {
	funcA()
	funcB()
	funcC()
}
